/*
  Tên:Huỳnh Nguyễn Ngọc Hân
  MSSV:11370551
  Lớp:DHTH7DLT
  Ngày hoàn thành:28/04/2012
  */
#include "frtheloai.h"
#include "ui_frtheloai.h"
#include <QtGui>
#include <QtSql>
#include "QModelIndex"
#include <QAbstractItemModel>
#include "quanlybansach.h"
frTheLoai::frTheLoai(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::frTheLoai)
{
    DB=new MySqlConnection();
    ui->setupUi(this);
    //Loadtable();
    resetTableSelectionEvent();
    connect(ui->btthemmoi,SIGNAL(clicked()),this,SLOT(ThemTheLoai()));
    connect(ui->btxoa,SIGNAL(clicked()),this,SLOT(xoatl()));
    connect(ui->btsua,SIGNAL(clicked()),this,SLOT(suatl()));
//    QStringList autoList =autoList=DB->AutoComplete("h2l_theloai","TenTheLoai");
//    QCompleter *completer = new QCompleter(autoList,this);
//    completer->setCaseSensitivity(Qt::CaseInsensitive);
//    ui->txtTheLoai->setCompleter(completer);
}

frTheLoai::~frTheLoai()
{
    delete ui;
}
void frTheLoai::changeEvent(QEvent *e)
{
    QDialog::changeEvent(e);
        switch (e->type()) {
        case QEvent::LanguageChange:
            ui->retranslateUi(this);
            break;
        default:
            break;
        }
}
void frTheLoai::ThemTheLoai()
{
    QString TenTL,MaTL;
    if(ui->txttheloai->text().isEmpty())
        return;
    MaTL="0";
    TenTL=ui->txttheloai->text();
    DB->Open();
    QSqlQuery query(DB->DB);
    query.prepare("INSERT INTO Sach (MaTheLoai,TenTheLoai) VALUES (:MaTheLoai,:TenTheLoai)");
    query.bindValue(":MaTheLoai",MaTL);
    query.bindValue(":TenTheLoai",TenTL);
    QMessageBox messagebox;
    QString message= query.exec()?(TenTL + " Đã được thêm vào mục thể loại"):query.lastError().text();
    DB->Close();
    messagebox.setText(message);
    messagebox.exec();
    resetTableSelectionEvent();
    ui->txttheloai->clear();
}

void frTheLoai::Loadtable()
{
    DB->Open();
    QSqlQueryModel *model = new QSqlQueryModel();
    model->setQuery("SELECT (MaSach)as MaTheL,MaTheLoai,TenTheLoai from Sach where MaTheLoai=0 order by MaSach desc  ", DB->DB);
    ui->tbtheloai->setModel(model);
    ui->tbtheloai->show();
    DB->Close();
}

void frTheLoai::xoatl()
{
    if(selectedtl.isEmpty())
    {
        QMessageBox::information(this,"thông báo","chọn một id trên bảng thể loại để xóa");
        return;
    }
    if(QMessageBox::question(this, "Xóa Thể Loại", "Bạn có muốn xóa thể loại [" + selectedtl + "]?", QMessageBox::Yes | QMessageBox::No) == QMessageBox::No)
    {
                    return;
    }
    DB->Open();
    QSqlQuery deletetheloai(DB->DB);
    deletetheloai.prepare("DELETE FROM Sach WHERE MaSach=?");
    deletetheloai.bindValue(0,selectedtl);
    deletetheloai.exec();
    resetTableSelectionEvent();
    //QMessageBox::information(this,"xoa id","ban muon xoa id"+selectedtl);
    DB->Close();
}

void frTheLoai::suatl()
{
    //QAbstractItemModel *item =ui->tbtheloai->model();
    //QModelIndex index=ui->tbtheloai->currentIndex();
    //int rowIndex=index.row();
    if(selectedtl.isEmpty())
    {
        QMessageBox::information(this,"thông báo","chọn một id trên bảng thể loại để sửa");
        return;
    }
    if(QMessageBox::question(this, "Sửa Thể Loại", "Bạn có muốn sửa thể loại '" + selecttentl + "' thành '"+ ui->txttheloai->text() + "'?", QMessageBox::Yes | QMessageBox::No) == QMessageBox::No)
    {
                    return;
    }
    DB->Open();
    QSqlQuery Updatetl(DB->DB);
    Updatetl.prepare("UPDATE Sach SET TenTheLoai= ? WHERE MaSach= ?");
    Updatetl.bindValue(0,ui->txttheloai->text());
    Updatetl.bindValue(1,selectedtl);
    Updatetl.exec();
    resetTableSelectionEvent();
    DB->Close();
}

void frTheLoai::resetTableSelectionEvent()
{
    Loadtable();
    selectionModel =ui->tbtheloai->selectionModel();
    //selectedtl=ui->txtMa->text();
    connect(selectionModel, SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)), this, SLOT(selectRow()));
}

void frTheLoai::empty()
{

}

void frTheLoai::setDefault()
{

}

void frTheLoai::selectRow()
{
    QAbstractItemModel *item =ui->tbtheloai->model();
    QModelIndex index=ui->tbtheloai->currentIndex();
    int rowIndex=index.row();
    ui->txttheloai->setText(item->data(item->index(rowIndex,2)).toString());
    //ui->txtMa->setText(item->data(item->index(rowIndex,1)).toString());
    selectedtl=item->data(item->index(rowIndex,0)).toString();
    selecttentl=item->data(item->index(rowIndex,2)).toString();
}

void frTheLoai::thoat()
{
    //QDialog.accept();
    close();
    //return 1;
    QuanLyBanSach *sach=qobject_cast<QuanLyBanSach*>(parent());
   // sach->show();
    sach->LoaTree();
}


